package com.zingrow.web.report.service;

import java.util.Date;
import java.util.List;

import com.zingrow.common.utils.PageView;
import com.zingrow.web.report.model.RptInfo;

public interface IRptInfoService {
    /**
     * 根据ID查询报表相关信息
     */
    RptInfo selectByRptInfoId(Integer id);

    /**
     * 根据条件筛选查询报告列表
     */
    List<RptInfo> selectAll(PageView pageView, String rptName, Integer groupid, Integer cycleId, Integer userId,
            Date startTime, Date endTime);

    /**
     * 生成日报
     * 
     * @param createTime
     *            生成日期
     * @param startTime
     *            报告代表的开始日期
     */
    List<RptInfo> createDayRpt(Date createTime, Date startTime);

    /**
     * 生成周报
     * 
     * @param createTime
     *            生成日期
     * @param startTime
     *            报告代表的开始日期
     */
    List<RptInfo> createWeekRpt(Date createTime, Date startTime);

    /**
     * 生成月报
     * 
     * @param createTime
     *            生成日期
     * @param startTime
     *            报告代表的开始日期
     */
    List<RptInfo> createMonthRpt(Date createTime, Date startTime);

    /**
     * 生成季报
     */
    List<RptInfo> createQuartRpt();

    /**
     * 生成半年报
     */
    List<RptInfo> createHarfYearRpt();

    /**
     * 生成年报
     */
    List<RptInfo> createYearRpt();

    /**
     * 根据ID删除报告
     */
    boolean delete(Integer id);
    
    /**
     * 根据报告ID查询报告所属用户的详细信息
     */
    List<RptInfo> selectUserRptById(Integer id);
    
    /**
     * 手机APP 查询报告列表接口
     */
    List<RptInfo> selectAllByIduserId(PageView pageView, String rptName, Integer groupId, Integer cycleId, Integer userId,
            Date startTime, Date endTime);
}
